package utn.frba.matematicasuperior.utiles;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Pos;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TableCell;
import utn.frba.matematicasuperior.controladores.SoporteControlador;
import utn.frba.matematicasuperior.modelo.ParOrdenado;

public class CheckBoxCell extends TableCell<ParOrdenado, Boolean> {

	private SoporteControlador controlador;

	public SoporteControlador getControlador() {
		return controlador;
	}

	public void setControlador(SoporteControlador controlador) {
		this.controlador = controlador;
	}

	private CheckBox checkbox;

	@Override
	protected void updateItem(Boolean item, boolean empty) {
		if (item == null)
			return;
		super.updateItem(item, empty);
		if (!isEmpty()) {
			this.checkbox = new CheckBox();
			this.checkbox.selectedProperty().addListener(
					new ChangeListener<Boolean>() {
						public void changed(
								ObservableValue<? extends Boolean> ov,
								Boolean old_val, Boolean new_val) {
							setItem(new_val);
							((ParOrdenado) getTableView().getItems().get(
									getTableRow().getIndex()))
									.setSelected(new_val);
						}
					});

			setAlignment(Pos.CENTER);
			setGraphic(this.checkbox);
		}

	}

	private Boolean getValue() {
		return getItem() == null ? false : getItem();
	}
}